A user of a client device can transfer client data (which may be in the form of a file or any data object) from a source storage device to a destination storage device that is compatible with the source storage device. First, the user can use the client device to request the client data from the source storage device. After the client device receives the requested client data from the source storage device, the user can instruct the client device to send this received client data to the destination storage device. Some storage systems provide such a user with an offloaded data transfer option that reduces the load on the client device's central processing unit(s). The user can use the client device to send an offloaded data transfer token to one or more such storage systems, with the offloaded data transfer token specifying the client data, the source storage device, and the destination storage device. Such a storage system(s) uses the offloaded data transfer token to identify the client data in the source storage device, identify the destination storage device, and transfer the client data from the source storage device to the destination storage device. After the client device sends the offloaded data transfer token to the storage system, the client device does not participate in receiving the client data or in sending the client data, thereby reducing the load on the client device's central processing unit(s) and eliminating the time spent by the client device receiving and sending the client data.
Data may be stored on a storage array, which is a disk storage system that includes multiple disk drives. Unlike a disk enclosure, a storage array has cache memory and advanced functionality, such as virtualization and Redundant Array of Independent Disks (RAID).